package cn.huoyingkeji.auth.domain;

import java.io.Serializable;
import java.time.LocalDateTime;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

@Data
public class AuthUser implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    public Long id;
    /**
     * 头像
     */
    public String avatar;
    /**
     * 签名
     */
    public String signature;
    /**
     * 账号
     */
    public String account;
    /**
     * 密码
     */
    public String password;
    /**
     * 姓名
     */
    public String name;
    /**
     * 昵称
     */
    public String nickname;
    /**
     * 性别
     */
    public String gender;
    /**
     * 年龄
     */
    public String age;
    /**
     * 出生日期
     */
    public String birthday;

    /**
     * 手机
     */
    public String phone;
    /**
     * 邮箱
     */
    public String email;
    /**
     * 员工编号
     */
    public String empNo;
    /**
     * 入职日期
     */
    public String entryDate;
    /** 机构id */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long  orgId;
    /** 岗位id */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long  positionId;
    /**
     * 职级
     */
    public String positionLevel;
    /** 主管id */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long  directorId;
    /**
     * 兼任信息
     */
    public String positionJson;
    /**
     * 上次登录ip
     */
    public String lastLoginIp;
    /**
     * 上次登录地点
     */
    public String lastLoginAddress;
    /**
     * 上次登录时间
     */
    public String lastLoginTime;
    /**
     * 上次登录设备
     */
    public String lastLoginDevice;
    /**
     * 最新登录ip
     */
    public String latestLoginIp;
    /**
     * 最新登录地点
     */
    public String latestLoginAddress;
    /**
     * 最新登录时间
     */
    public String latestLoginTime;
    /**
     * 最新登录设备
     */
    public String latestLoginDevice;
    /**
     * 用户状态
     */
    public String userStatus;
    /**
     * 排序码
     */
    public String sortCode;
    /**
     * 扩展信息
     */
    public String extJson;
    /**
     * 租户ID
     */
    public String tenantId;
    /**
     * 创建者:0 为系统创建，-1 为未知用户创建。
     */
    public Long createBy;
    /**
     * 创建时间
     */
    public LocalDateTime createTime;
    /**
     * 修改者
     */
    public Long updateBy;
    /**
     * 修改时间
     */
    public LocalDateTime updateTime;
    /**
     * 状态
     */
    public String status;

    /**
     * 备注
     */
    public String remark;
}
